iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

寫給自己看的前端學習筆記系列 第 10

寫給自己看的前端學習筆記 Day10

  • 分享至 

  • xImage
  •  

鐵人賽 Day 10 (函式與變數)

function (函式)

定義函式的方法

  • 函式宣告 例: function calculator (){ do something }; **補充 function 也可以不命名稱之為匿名函數 **
  • 函式運算式 var calculator = function () { do somthing... };
  • 使用 new 關鍵字 new Function ();

變數

  • 全域變數 name = 'steve' (全域變數是全域物間的屬性,以瀏覽器為例全域物件就是 window)
  • 區域變數 var name = 'steve'

變數提升

只要變數有宣告就不會產生錯誤,但是在變數宣告之前就使用該變數就會導致
變數提升現象產生,所謂變數提升(Hoisting)意即把宣告的語法拉到最上面,以下面這段 code 為例就是只把 var a 放到function 第一行。
只宣告變數而沒有賦值,代表什麼都沒有那就只會是 undefined。
因此使用任何變數之前都應該先宣告。

function plusOne (){
    a+1
    var a = 10
}
plusOne(a)   // undfined

Scope 作用域

變數的有效範圍是以 function 來區分範圍
var name 在 function 內外分別帶表不同字串,

var name = 'Steve'

function changeName () {
 var name = 'Bob';
 console.log(name);
}
changeName(name);  // 'Bob'
console.log(name); // 'Steve'

變數 var 跟 let

兩者之間的主要差異在於 var 會變數提升 (Hoisting),以及
let 不會,而且 let 不允許變數重複命名,另一個差別是 let是由 {} 分開作用域,var是由 function 區分。

沒有先宣告變數 let 會產生的錯誤訊息
Uncaught ReferenceError: Cannot access 'name' before initialization

function naming()  {
 console.log(name);
 let name = 'Ken';
}
naming(name); // Uncaught ReferenceError: Cannot access 'name' before initialization

上一篇
寫給自己看的前端學習筆記 Day9
下一篇
寫給自己看的前端學習筆記 Day11
系列文
寫給自己看的前端學習筆記18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言